Introduction

Sleep Patterns in Mammals
Species Body Weight1 Brain Weight2 Slow Wave Sleep3 Paradoxical Sleep4 Total Sleep Maximum Life Span (yrs)
Asian elephant 2547.000 4603.00 2.1 1.8 3.9 69.0
Horse 521.000 655.00 2.1 0.8 2.9 46.0
Cow 465.000 423.00 3.2 0.7 3.9 30.0
Pig 192.000 180.00 6.5 1.9 8.4 27.0
Brazilian tapir 160.000 169.00 5.2 1.0 6.2 30.4
Gray seal 85.000 325.00 4.7 1.5 6.2 41.0
Human 62.000 1320.00 6.1 1.9 8.0 100.0
Sheep 55.500 175.00 3.2 0.6 3.8 20.0
Chimpanzee 52.160 440.00 8.3 1.4 9.7 50.0
Goat 27.660 115.00 3.3 0.5 3.8 20.0
Baboon 10.550 179.50 9.1 0.7 9.8 27.0
Patas monkey 10.000 115.00 10.0 0.9 10.9 20.2
Rhesus monkey 6.800 179.00 8.4 1.2 9.6 29.0
Red fox 4.235 50.40 7.4 2.4 9.8 9.8
Vervet 4.190 58.00 9.7 0.6 10.3 24.0
Nine-banded armadillo 3.500 10.80 14.3 3.1 17.4 6.5
Water opossum 3.500 3.90 12.8 6.6 19.4 3.0
Cat 3.300 25.60 10.9 3.6 14.5 28.0
Echidna 3.000 25.00 8.6 0.0 8.6 50.0
Rabbit 2.500 12.10 7.5 0.9 8.4 18.0
Tree hyrax 2.000 12.30 4.9 0.5 5.4 7.5
N. American opossum 1.700 6.30 13.8 5.6 19.4 5.0
Phanlanger 1.620 11.40 11.9 1.8 13.7 13.0
Guinea pig 1.040 5.50 7.4 0.8 8.2 7.6
African giant pouched rat 1.000 6.60 6.3 2.0 8.3 4.5
Tenrec 0.900 2.60 11.0 2.3 13.3 4.5
European hedgehog 0.785 3.50 6.6 4.1 10.7 6.0
Owl monkey 0.480 15.50 15.2 1.8 17.0 12.0
Chinchilla 0.425 6.40 11.0 1.5 12.5 7.0
Rat 0.280 1.90 10.6 2.6 13.2 4.7
Galago 0.200 5.00 9.5 1.2 10.7 10.4
Golden hamster 0.120 1.00 11.0 3.4 14.4 3.9
Tree shrew 0.104 2.50 13.2 2.6 15.8 2.3
Ground squirrel 0.101 4.00 10.4 3.4 13.8 9.0
Eastern American mole 0.075 1.20 6.3 2.1 8.4 3.5
Musk shrew 0.048 0.33 10.8 2.0 12.8 2.0
Big brown bat 0.023 0.30 15.8 3.9 19.7 19.0
Mouse 0.023 0.40 11.9 1.3 13.2 3.2
Little brown bat 0.010 0.25 17.9 2.0 19.9 24.0
Lesser short-tailed shrew 0.005 0.14 7.7 1.4 9.1 2.6

1 Weight in kilograms

2 Weight in grams

3 Non-dreaming hours per day

4 Dreaming hours per day

LS0tCnRpdGxlOiAiTWFtbWFsIFNsZWVwIEJlaGF2aW9yIgphdXRob3I6ICJKb3NlbHluIEFuZ2VsZXMgYW5kIFBpcHBhIEdhbGxhZ2hlciIKb3V0cHV0OiAKICBodG1sX2RvY3VtZW50OgogICAgdG9jOiB0cnVlCiAgICB0b2NfZmxvYXQ6IHRydWUKICAgIHRoZW1lOiB5ZXRpCiAgICBkZl9wcmludDogcGFnZWQKICAgIGNvZGVfZG93bmxvYWQ6IHRydWUKLS0tCgpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KGVjaG8gPSBUUlVFKQpgYGAKCgoKYGBge3IsIGVjaG89RkFMU0UsIGluY2x1ZGU9RkFMU0V9CmxpYnJhcnkodGlkeXZlcnNlKQpsaWJyYXJ5KGd0KQpsaWJyYXJ5KHBsb3RseSkKbGlicmFyeShwYXRjaHdvcmspCnNsZWVwPC1yZWFkLmNzdigiU2xlZXBJbk1hbW1hbHMuY3N2IikKYGBgCgpgYGB7ciwgZWNobz1GQUxTRX0Kc2xlZXAKYGBgCgojIyBJbnRyb2R1Y3Rpb24KCmBgYHtyLCBlY2hvPUZBTFNFfQpzbGVlcCAlPiUgCiAgc2VsZWN0KCFHZXN0YXRpb24udGltZS4uZGF5cy46T3ZlcmFsbC5kYW5nZXIuaW5kZXgpICU+JSAKICBhcnJhbmdlKGRlc2MoQm9keS5XZWlnaHQuLmtnLikpICU+JSAKZ3Qocm93bmFtZV9jb2wgPSAicm93IiwKICAgZ3JvdXBuYW1lX2NvbCA9ICJncm91cCIpICU+JSAKICB0YWJfaGVhZGVyKAogICAgdGl0bGUgPSBtZCgiKipTbGVlcCBQYXR0ZXJucyBpbiBNYW1tYWxzKioiKSkgJT4lIAogIHRhYl9mb290bm90ZSgKICAgIGZvb3Rub3RlID0gIldlaWdodCBpbiBraWxvZ3JhbXMiLCAKICAgIGxvY2F0aW9ucyA9IGNlbGxzX2NvbHVtbl9sYWJlbHMoCiAgICAgIGNvbHVtbnMgPSAyKSkgJT4lIAogIHRhYl9mb290bm90ZSgKICAgIGZvb3Rub3RlID0gIldlaWdodCBpbiBncmFtcyIsCiAgICBsb2NhdGlvbnMgPSBjZWxsc19jb2x1bW5fbGFiZWxzKAogICAgICBjb2x1bW5zID0gMykpICU+JQogIHRhYl9mb290bm90ZSgKICAgIGZvb3Rub3RlID0gIk5vbi1kcmVhbWluZyBob3VycyBwZXIgZGF5IiwKICAgIGxvY2F0aW9ucyA9IGNlbGxzX2NvbHVtbl9sYWJlbHMoCiAgICAgIGNvbHVtbnMgPSA0KSkgJT4lCiAgdGFiX2Zvb3Rub3RlKAogICAgZm9vdG5vdGUgPSAiRHJlYW1pbmcgaG91cnMgcGVyIGRheSIsCiAgICBsb2NhdGlvbnMgPSBjZWxsc19jb2x1bW5fbGFiZWxzKAogICAgICBjb2x1bW5zID0gNSkpICU+JSAKICBjb2xzX2xhYmVsKAogICAgU3BlY2llcy5vZi5hbmltYWw9IlNwZWNpZXMiLAogICAgQm9keS5XZWlnaHQuLmtnLj0iQm9keSBXZWlnaHQiLAogICAgQnJhaW4uV2VpZ2h0Li5nLiA9IkJyYWluIFdlaWdodCIsCiAgICBTbG93LndhdmUuc2xlZXAuLmhycy5kYXkuID0gIlNsb3cgV2F2ZSBTbGVlcCIsCiAgICBQYXJhZG94aWNhbC5zbGVlcC4uaHJzLmRheS4gPSAiUGFyYWRveGljYWwgU2xlZXAiLAogICAgVG90YWwuc2xlZXAuLmhycy5kYXkuCT0gIlRvdGFsIFNsZWVwIiwKICAgIE1heGltdW0ubGlmZS5zcGFuLi55ZWFycy4gPSJNYXhpbXVtIExpZmUgU3BhbiAoeXJzKSIpCmBgYAoKYGBge3IsIGVjaG89RkFMU0V9CnNsZWVwX2dyYXBoPC0KICBzbGVlcCAlPiUgCiAgbXV0YXRlKGJvZHlfd3RsYnMgPSBCb2R5LldlaWdodC4ua2cuKjIuMjA0NjIpICU+JSAgCiAgYXJyYW5nZShkZXNjKGJvZHlfd3RsYnMpKSAlPiUgCiAgaGVhZCgyNSkgJT4lIAogIGdncGxvdChhZXMoCiAgICB5ID0gYm9keV93dGxicywgCiAgICB4ID0gVG90YWwuc2xlZXAuLmhycy5kYXkuLAogICAgc2l6ZSA9IGJvZHlfd3RsYnMsCiAgICBhbHBoYSA9IC41LAogICAgY29sb3I9IFNwZWNpZXMub2YuYW5pbWFsKSkrCiAgZ2VvbV9wb2ludCgpICsKICBsYWJzKHRpdGxlID0gIlRvdGFsIGhvdXJzIHBlciBkYXkgbWFtbWFscyBvZiBkaWZmZXJlbnQgd2VpZ2h0IChsYnMpIHNsZWVwIiwKICAgICAgIHggPSAiIiwKICAgICAgIHkgPSAiIikgKwogIHRoZW1lKHBsb3QudGl0bGUucG9zaXRpb24gPSAicGxvdCIsCiAgICAgICAgbGVnZW5kLnBvc2l0aW9uID0gIk5vbmUiKSAKCmdncGxvdGx5KHNsZWVwX2dyYXBoKSAlPiUgCiAgaGlkZV9sZWdlbmQoKQpgYGAKCmBgYHtyLCBlY2hvPUZBTFNFfQpzbGVlcCAlPiUgCiAgICBnZ3Bsb3QoYWVzKHggPSBPdmVyYWxsLmRhbmdlci5pbmRleCwKICAgICAgICAgICAgICAgeSA9IGZjdF9yZW9yZGVyKFNwZWNpZXMub2YuYW5pbWFsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT3ZlcmFsbC5kYW5nZXIuaW5kZXgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZGVzYyA9IEZBTFNFKSwKICAgICAgICAgICAgICAgZmlsbCA9IFByZWRhdGlvbi5pbmRleCksCiAgICAgICAgICAgY29sb3IgPSAid2hpdGUiKSArCiAgICBnZW9tX2NvbCgpICsKICAgIGxhYnModGl0bGUgPSAiT3ZlcmFsbCBkYW5nZXIgaW5kZXggb2YgYXR0YWNrcyBmcm9tIG90aGVyIGFuaW1hbHMgZm9yIG1hbW1hbHMiLAogICAgICAgICBzdWJ0aXRsZSA9ICIgICAgIiwKICAgICAgICAgY2FwdGlvbiA9ICJQaXBwYSBHYWxsYWdoZXIgYW5kIEpvc2VseW4gQW5nZWxlcyIsCiAgICAgICAgIHggPSAiIiwKICAgICAgICAgeSA9ICIiLAogICAgICAgICBmaWxsID0gIlByZWRhdGlvbiBJbmRleCIpICsKICBzY2FsZV94X2NvbnRpbnVvdXMoZXhwYW5kID0gYygwLDApKSArCiAgICB0aGVtZSgKICAgICAgICAgIGF4aXMudGV4dC55ID0gZWxlbWVudF90ZXh0KHNpemUgPSA2LjUpLAogICAgICAgICAgcGxvdC50aXRsZS5wb3NpdGlvbiA9ICJwbG90IiwKICAgICAgICAgIHBsb3QuY2FwdGlvbi5wb3NpdGlvbiA9ICJwbG90IiwKICAgICAgICAgIHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoY29sb3IgPSAiIzBhMjAzYiIpLAogICAgICAgICAgcGFuZWwuZ3JpZC5tYWpvci54ID0gZWxlbWVudF9ibGFuaygpLAogICAgICAgICAgcGFuZWwuZ3JpZC5taW5vci54ID0gZWxlbWVudF9ibGFuaygpLAogICAgICAgICAgcGFuZWwuZ3JpZC5tYWpvci55ID0gZWxlbWVudF9ibGFuaygpLAogICAgICAgICAgcGFuZWwuZ3JpZC5taW5vci55ID0gZWxlbWVudF9ibGFuaygpLAogICAgICAgICAgcGFuZWwuYmFja2dyb3VuZCA9IGVsZW1lbnRfcmVjdChjb2xvciA9ICJ3aGl0ZSIpLAogICAgICAgICAgcGxvdC5iYWNrZ3JvdW5kID0gZWxlbWVudF9yZWN0KGNvbG9yID0gIndoaXRlIikpICsKICAgIHNjYWxlX2ZpbGxfZ3JhZGllbnQoaGlnaCA9ICIjMGEyMDNiIiwgbG93ID0gIiNjM2RlZmYiKQpgYGAKCmBgYHtyLCBlY2hvPUZBTFNFfQpHMCA8LQpzbGVlcCAlPiUgCiAgbXV0YXRlKHBlcmNlbnRfZHJlYW1pbmcgPSAoUGFyYWRveGljYWwuc2xlZXAuLmhycy5kYXkuL1RvdGFsLnNsZWVwLi5ocnMuZGF5LikgKiAxMDApICU+JSAKICBmaWx0ZXIocGVyY2VudF9kcmVhbWluZyAhPSAwKSAlPiUgCiAgZ2dwbG90KCkgKwogIGdlb21fY29sKGFlcyh4ID0gcGVyY2VudF9kcmVhbWluZywgCiAgICAgICAgICAgICAgIHkgPSBmY3RfcmVvcmRlcihTcGVjaWVzLm9mLmFuaW1hbCwgcGVyY2VudF9kcmVhbWluZywgbWVkaWFuKSwKICAgICAgICAgICAgICAgZmlsbCA9IFRvdGFsLnNsZWVwLi5ocnMuZGF5LikpICsKICBsYWJzKHRpdGxlID0gIkhvdyBNdWNoIGRvIE1hbW1hbHMgRHJlYW0iLAogICAgICAgeSA9ICIiLAogICAgICAgeCA9ICJQZXJjZW50YWdlIG9mIEhvdXJzIERyZWFtaW5nIiwKICAgICAgIGZpbGwgPSAiVG90YWwgU2xlZXBpbmcgSG91cnMiLAogICAgICAgY2FwdGlvbiA9ICJQaXBwYSBHYWxsYWdoZXIgYW5kIEpvc2VseW4gQW5nZWxlcyIsCiAgICAgICBzdWJ0aXRsZSA9ICIgICAgIikgKwogIHRoZW1lKAogICAgYXhpcy50ZXh0LnkgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDYuNSksCiAgICBwYW5lbC5ncmlkLm1ham9yLnggPSBlbGVtZW50X2JsYW5rKCksCiAgICBwYW5lbC5ncmlkLm1pbm9yLnggPSBlbGVtZW50X2JsYW5rKCksCiAgICBwYW5lbC5ncmlkLm1ham9yLnkgPSBlbGVtZW50X2JsYW5rKCksCiAgICBwYW5lbC5ncmlkLm1pbm9yLnkgPSBlbGVtZW50X2JsYW5rKCksCiAgICBwbG90LnRpdGxlLnBvc2l0aW9uID0gInBsb3QiLAogICAgcGxvdC50aXRsZSA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICIjMGEyMDNiIiksCiAgICBwbG90LmNhcHRpb24ucG9zaXRpb24gPSAicGxvdCIKICApICsKICBzY2FsZV94X2NvbnRpbnVvdXMoZXhwYW5kID0gYygwLDApKSArCiAgc2NhbGVfZmlsbF9ncmFkaWVudChoaWdoID0gIiMwYTIwM2IiLCBsb3cgPSAiI2MzZGVmZiIpCkcwCgpgYGAKCmBgYHtyLCBlY2hvPUZBTFNFfQpHMSA8LQogIHNsZWVwICU+JSAKICBmaWx0ZXIoU3BlY2llcy5vZi5hbmltYWwgJWluJSBjKCJIb3JzZSIsICJDb3ciLCAiUGlnIiwgIkh1bWFuIiwgIlNoZWVwIiwgIkNoaW1wYW56ZWUiLCAiR29hdCIsICJCYWJvb24iLCAiUmVkIGZveCIsICJDYXQiLCAiUmFiYml0IiwgIlJhdCIsICJHcm91bmQgc3F1aXJyZWwiLCAiTW91c2UiKSkgJT4lIAogIHNlbGVjdChTcGVjaWVzLm9mLmFuaW1hbCwgU2xvdy53YXZlLnNsZWVwLi5ocnMuZGF5LixTbGVlcC5leHBvc3VyZS5pbmRleCkgJT4lIAogIGdncGxvdCgpICsKICBnZW9tX2NvbChhZXMoeSA9IFNsb3cud2F2ZS5zbGVlcC4uaHJzLmRheS4sIAogICAgICAgICAgICAgICB4ID0gZmN0X3Jlb3JkZXIoU3BlY2llcy5vZi5hbmltYWwsU2xvdy53YXZlLnNsZWVwLi5ocnMuZGF5LixtZWRpYW4pLAogICAgICAgICAgICAgICBmaWxsID0gU2xlZXAuZXhwb3N1cmUuaW5kZXgpKSArCiAgZ2VvbV90ZXh0KGFlcyh5ID0gU2xvdy53YXZlLnNsZWVwLi5ocnMuZGF5LiArIDUsIHg9ZmN0X3Jlb3JkZXIoU3BlY2llcy5vZi5hbmltYWwsU2xvdy53YXZlLnNsZWVwLi5ocnMuZGF5LixtZWRpYW4pLCBsYWJlbD0gU3BlY2llcy5vZi5hbmltYWwpLCBjb2xvcj0id2hpdGUiLCBmb250ZmFjZT0iYm9sZCIsYWxwaGE9MC42LCBzaXplPSAyLjUsIGluaGVyaXQuYWVzID0gRkFMU0UgKSArCiAgc2NhbGVfY29sb3JfdmlyaWRpc19jKG9wdGlvbiA9ICJtYWdtYSIpICsKICBsYWJzKHRpdGxlID0gIk5vbi1EcmVhbWluZyBIb3VycyBvZiBTbGVlcCBwZXIgRGF5IiwKICAgICAgIGNhcHRpb24gPSAiUGlwcGEgR2FsbGFnaGVyIGFuZCBKb3NlbHluIEFuZ2VsZXMiLAogICAgICAgc3VidGl0bGUgPSAiVGhpcyBtZWFzdXJlcyB0aGUgbnVtYmVyIG9mIGhvdXJzIG9mIHNsb3cgd2F2ZSAobm9uLWRyZWFtaW5nKSBzbGVlcCBlYWNoIG1hbW1hbCwgb24gYXZlcmdhZSwgaGFzIGVhY2ggbmlnaHQuXG5UaGUgU2xlZXAgTWVhc3VyZSBJbmRleCBkZXRlcm1pbmVzIGhvdyB2dWxuZXJhYmxlIHRoZSBtYW1tYWwgaXMgd2hlbiBzbGVlcGluZywgd2l0aCAxIGJlaW5nIHRoZSBsZWFzdCB2dWxuZXJiYWxlIFxuYW5kIDUgdGhlIG1vc3QuIiwKICAgICAgIHkgPSAiIiwKICAgICAgIHggPSAiIiwKICAgICAgIGZpbGwgPSAiU2xlZXAgRXhwb3N1cmUgSW5kZXgiKSArCiAgY29vcmRfcG9sYXIoc3RhcnQgPSAwKSArCiAgeWxpbSgtMywxOCkgKwogICB0aGVtZSgKICAgIGF4aXMudGV4dC54ID0gZWxlbWVudF9ibGFuaygpLAogICAgcGFuZWwuZ3JpZCA9IGVsZW1lbnRfYmxhbmsoKSwKICAgIHBsb3QuYmFja2dyb3VuZCA9IGVsZW1lbnRfcmVjdChmaWxsID0gIiMwYTIwM2IiKSwKICAgIHBhbmVsLmJhY2tncm91bmQgPSBlbGVtZW50X3JlY3QoZmlsbCA9ICIjMGEyMDNiIiksCiAgICBsZWdlbmQuYmFja2dyb3VuZCA9IGVsZW1lbnRfcmVjdChmaWxsID0gIiMwYTIwM2IiKSwKICAgIHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoY29sb3IgPSAid2hpdGUiKSwKICAgIHBsb3QudGl0bGUucG9zaXRpb24gPSAicGxvdCIsCiAgICBsZWdlbmQudGV4dCA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJ3aGl0ZSIpLAogICAgbGVnZW5kLnRpdGxlID0gZWxlbWVudF90ZXh0KGNvbG9yID0gIndoaXRlIiksCiAgICBheGlzLnRleHQueSA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJ3aGl0ZSIpLAogICAgcGxvdC5jYXB0aW9uID0gZWxlbWVudF90ZXh0KGNvbG9yID0gIndoaXRlIiksCiAgICAgcGxvdC5jYXB0aW9uLnBvc2l0aW9uID0gInBsb3QiLAogICAgcGxvdC5zdWJ0aXRsZSA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJ3aGl0ZSIsIHNpemUgPSA3KSkgKwogIHNjYWxlX2ZpbGxfZ3JhZGllbnQoaGlnaCA9ICIjMjQ3M2RiIiwgbG93ID0gIiNjM2RlZmYiKQogIApHMQpgYGAKCgpgYGB7ciwgZWNobz1GQUxTRX0KRzIgPC0KICBzbGVlcCAlPiUgCiAgZmlsdGVyKFNwZWNpZXMub2YuYW5pbWFsICVpbiUgYygiSG9yc2UiLCAiQ293IiwgIlBpZyIsICJIdW1hbiIsICJTaGVlcCIsICJDaGltcGFuemVlIiwgIkdvYXQiLCAiQmFib29uIiwgIlJlZCBmb3giLCAiQ2F0IiwgIlJhYmJpdCIsICJSYXQiLCAiR3JvdW5kIHNxdWlycmVsIiwgIk1vdXNlIikpICU+JSAKICBzZWxlY3QoU3BlY2llcy5vZi5hbmltYWwsUGFyYWRveGljYWwuc2xlZXAuLmhycy5kYXkuICxTbGVlcC5leHBvc3VyZS5pbmRleCkgJT4lIAogIGdncGxvdCgpICsKICBnZW9tX2NvbChhZXMoeSA9IFBhcmFkb3hpY2FsLnNsZWVwLi5ocnMuZGF5LiwgCiAgICAgICAgICAgICAgIHggPSBmY3RfcmVvcmRlcihTcGVjaWVzLm9mLmFuaW1hbCxQYXJhZG94aWNhbC5zbGVlcC4uaHJzLmRheS4sbWVkaWFuKSwKICAgICAgICAgICAgICAgZmlsbCA9IFNsZWVwLmV4cG9zdXJlLmluZGV4KSkgKwogIGdlb21fdGV4dChhZXMoeSA9IFBhcmFkb3hpY2FsLnNsZWVwLi5ocnMuZGF5LiArIDIsIHg9ZmN0X3Jlb3JkZXIoU3BlY2llcy5vZi5hbmltYWwsUGFyYWRveGljYWwuc2xlZXAuLmhycy5kYXkuLG1lZGlhbiksIGxhYmVsPSBTcGVjaWVzLm9mLmFuaW1hbCksIGNvbG9yPSJ3aGl0ZSIsIGZvbnRmYWNlPSJib2xkIixhbHBoYT0wLjYsIHNpemU9Mi41LCBpbmhlcml0LmFlcyA9IEZBTFNFICkgKwogIGxhYnModGl0bGUgPSAiRHJlYW1pbmcgSG91cnMgb2YgU2xlZXAgcGVyIERheSIsCiAgICAgICBjYXB0aW9uID0gIlBpcHBhIEdhbGxhZ2hlciBhbmQgSm9zZWx5biBBbmdlbGVzIiwKICAgICAgIHN1YnRpdGxlID0gIlRoaXMgbWVhc3VyZXMgdGhlIG51bWJlciBvZiBob3VycyBvZiBwYXJhZG94aWNhbCAoZHJlYW1pbmcpIHNsZWVwIGVhY2ggbWFtbWFsLCBvbiBhdmVyZ2FlLCBoYXMgZWFjaCBuaWdodC5cblRoZSBTbGVlcCBNZWFzdXJlIEluZGV4IGRldGVybWluZXMgaG93IHZ1bG5lcmFibGUgdGhlIG1hbW1hbCBpcyB3aGVuIHNsZWVwaW5nLCB3aXRoIDEgYmVpbmcgdGhlIGxlYXN0IHZ1bG5lcmJhbGVcbmFuZCA1IHRoZSBtb3N0LiIsCiAgICAgICB5ID0gIiIsCiAgICAgICB4ID0gIiIsCiAgICAgICBmaWxsID0gIlNsZWVwIEV4cG9zdXJlIEluZGV4IikgKwogIGNvb3JkX3BvbGFyKHN0YXJ0ID0gMCkgKwogIHlsaW0oLTEuNSw2KSArCiAgICAgdGhlbWUoCiAgICBheGlzLnRleHQueCA9IGVsZW1lbnRfYmxhbmsoKSwKICAgIHBhbmVsLmdyaWQgPSBlbGVtZW50X2JsYW5rKCksCiAgICBwbG90LmJhY2tncm91bmQgPSBlbGVtZW50X3JlY3QoZmlsbCA9ICIjMGEyMDNiIiksCiAgICBwYW5lbC5iYWNrZ3JvdW5kID0gZWxlbWVudF9yZWN0KGZpbGwgPSAiIzBhMjAzYiIpLAogICAgbGVnZW5kLmJhY2tncm91bmQgPSBlbGVtZW50X3JlY3QoZmlsbCA9ICIjMGEyMDNiIiksCiAgICBwbG90LnRpdGxlID0gZWxlbWVudF90ZXh0KGNvbG9yID0gIndoaXRlIiksCiAgICBwbG90LnRpdGxlLnBvc2l0aW9uID0gInBsb3QiLAogICAgbGVnZW5kLnRleHQgPSBlbGVtZW50X3RleHQoY29sb3IgPSAid2hpdGUiKSwKICAgIGxlZ2VuZC50aXRsZSA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJ3aGl0ZSIpLAogICAgYXhpcy50ZXh0LnkgPSBlbGVtZW50X3RleHQoY29sb3IgPSAid2hpdGUiKSwKICAgIHBsb3QuY2FwdGlvbiA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJ3aGl0ZSIpLAogICAgcGxvdC5jYXB0aW9uLnBvc2l0aW9uID0gInBsb3QiLAogICAgcGxvdC5zdWJ0aXRsZSA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJ3aGl0ZSIsIHNpemUgPSA3KSkgKwogIHNjYWxlX2ZpbGxfZ3JhZGllbnQoaGlnaCA9ICIjMjQ3M2RiIiwgbG93ID0gIiNjM2RlZmYiKQpHMgoKYGBgCgoKYGBge3IsIGVjaG89RkFMU0V9CkczIDwtCiAgc2xlZXAgJT4lIAogIGdncGxvdCgpICsKICBnZW9tX3Zpb2xpbihhZXMoeCA9IE92ZXJhbGwuZGFuZ2VyLmluZGV4LAogICAgICAgICAgICAgICAgICB5ID0gTWF4aW11bS5saWZlLnNwYW4uLnllYXJzLiksCiAgICAgICAgICAgICAgICAgIGNvbG9yID0gIiMyNDczZGIiLAogICAgICAgICAgICAgICAgICBmaWxsID0gIiNjM2RlZmYiKSArCiAgdGhlbWUoCiAgICBwbG90LmJhY2tncm91bmQgPSBlbGVtZW50X3JlY3QoIiMwYTIwM2IiKSwKICAgIHBhbmVsLmJhY2tncm91bmQgPSBlbGVtZW50X3JlY3QoIiMwYTIwM2IiKSwKICAgIHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoY29sb3IgPSAid2hpdGUiKSwKICAgIHBhbmVsLmdyaWQubWFqb3IueCA9IGVsZW1lbnRfYmxhbmsoKSwKICAgIHBhbmVsLmdyaWQubWlub3IueCA9IGVsZW1lbnRfYmxhbmsoKSwKICAgIHBhbmVsLmdyaWQubWFqb3IueSA9IGVsZW1lbnRfYmxhbmsoKSwKICAgIHBhbmVsLmdyaWQubWlub3IueSA9IGVsZW1lbnRfYmxhbmsoKSwKICAgIGF4aXMudGV4dCA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJ3aGl0ZSIpLAogICAgcGxvdC5jYXB0aW9uID0gZWxlbWVudF90ZXh0KGNvbG9yID0gIndoaXRlIiksCiAgICBwbG90LmNhcHRpb24ucG9zaXRpb24gPSAicGxvdCIsCiAgICBwbG90LnRpdGxlLnBvc2l0aW9uID0gInBsb3QiLAogICAgcGxvdC5zdWJ0aXRsZSA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJ3aGl0ZSIsIHNpemUgPSA3KQogICkgKwogIGxhYnMoeCA9ICIiLAogICAgICAgeSA9ICIiLAogICAgICAgdGl0bGUgPSAiVGhlIENvcnJlbGF0aW9uIGJldHdlZW4gTWF4aW11bSBMaWZlIFNwYW4gYW5kIERhbmdlciBJbmRleCIsCiAgICAgICBzdWJ0aXRsZSA9ICJUaGUgRGFuZ2VyIEluZGV4IGRldGVybWluZXMgaG93IHZ1bG5lcmFibGUgdGhlIG1hbW1hbCBpcyB0byBoYXJtLCB3aXRoIDEgYmVpbmcgdGhlIGxlYXN0IHZ1bG5lcmJhbGUgYW5kIDUgdGhlIG1vc3QuIiwKICAgICAgIGNhcHRpb24gPSAiUGlwcGEgR2FsbGFnaGVyIGFuZCBKb3NlbHluIEFuZ2VsZXMiKQogIApHMwpgYGAKCmBgYHtyLCBlY2hvPUZBTFNFfQpHNCA8LQogIHNsZWVwICU+JSAKICAgZmlsdGVyKFNwZWNpZXMub2YuYW5pbWFsICVpbiUgYygiSG9yc2UiLCAiQ293IiwgIlBpZyIsICJIdW1hbiIsICJTaGVlcCIsICJDaGltcGFuemVlIiwgIkdvYXQiLCAiQmFib29uIiwgIlJlZCBmb3giLCAiQ2F0IiwgIlJhYmJpdCIsICJSYXQiLCAiR3JvdW5kIHNxdWlycmVsIiwgIk1vdXNlIikpICU+JSAKICBtdXRhdGUoVG90YWxfaG91cnNfc2xlZXBpbmdfbGlmZSA9IFRvdGFsLnNsZWVwLi5ocnMuZGF5LiAqIChNYXhpbXVtLmxpZmUuc3Bhbi4ueWVhcnMuICogMzY1KSwKICAgICAgICAgVG90YWxfaG91cnNfYWxpdmUgPSBNYXhpbXVtLmxpZmUuc3Bhbi4ueWVhcnMuICogMzY1ICogMjQsCiAgICAgICAgIFByb3Bfc3BlbnRfc2xlZXBpbmcgPSAoVG90YWxfaG91cnNfc2xlZXBpbmdfbGlmZS9Ub3RhbF9ob3Vyc19hbGl2ZSkgKjEwMCkgJT4lIAogICBnZ3Bsb3QoKSArCiAgZ2VvbV9jb2woYWVzKHkgPSBQcm9wX3NwZW50X3NsZWVwaW5nLCAKICAgICAgICAgICAgICAgeCA9IGZjdF9yZW9yZGVyKFNwZWNpZXMub2YuYW5pbWFsLFByb3Bfc3BlbnRfc2xlZXBpbmcsbWVkaWFuKSwKICAgICAgICAgICAgICBmaWxsID0gTWF4aW11bS5saWZlLnNwYW4uLnllYXJzLikpICsKICBnZW9tX3RleHQoYWVzKHkgPSBQcm9wX3NwZW50X3NsZWVwaW5nICsgMjAsIHg9ZmN0X3Jlb3JkZXIoU3BlY2llcy5vZi5hbmltYWwsUHJvcF9zcGVudF9zbGVlcGluZyxtZWRpYW4pLCBsYWJlbD0gU3BlY2llcy5vZi5hbmltYWwpLCBjb2xvcj0id2hpdGUiLCBmb250ZmFjZT0iYm9sZCIsYWxwaGE9MC42LCBzaXplPTIuNSwgaW5oZXJpdC5hZXMgPSBGQUxTRSApICsKICBjb29yZF9wb2xhcihzdGFydCA9IDApICsKICB5bGltKC01LDkwKSArCiAgIHRoZW1lKAogICAgYXhpcy50ZXh0LnggPSBlbGVtZW50X2JsYW5rKCksCiAgICBwYW5lbC5ncmlkID0gZWxlbWVudF9ibGFuaygpLAogICAgcGxvdC5iYWNrZ3JvdW5kID0gZWxlbWVudF9yZWN0KGZpbGwgPSAiIzBhMjAzYiIpLAogICAgcGFuZWwuYmFja2dyb3VuZCA9IGVsZW1lbnRfcmVjdChmaWxsID0gIiMwYTIwM2IiKSwKICAgIGxlZ2VuZC5iYWNrZ3JvdW5kID0gZWxlbWVudF9yZWN0KGZpbGwgPSAiIzBhMjAzYiIpLAogICAgcGxvdC50aXRsZSA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICJ3aGl0ZSIpLAogICAgcGxvdC50aXRsZS5wb3NpdGlvbiA9ICJwbG90IiwKICAgIGxlZ2VuZC50ZXh0ID0gZWxlbWVudF90ZXh0KGNvbG9yID0gIndoaXRlIiksCiAgICBsZWdlbmQudGl0bGUgPSBlbGVtZW50X3RleHQoY29sb3IgPSAid2hpdGUiKSwKICAgIGF4aXMudGV4dC55ID0gZWxlbWVudF90ZXh0KGNvbG9yID0gIndoaXRlIiksCiAgICBwbG90LmNhcHRpb24gPSBlbGVtZW50X3RleHQoY29sb3IgPSAid2hpdGUiKSwKICAgIHBsb3QuY2FwdGlvbi5wb3NpdGlvbiA9ICJwbG90IiwKICAgIHBsb3Quc3VidGl0bGUgPSBlbGVtZW50X3RleHQoY29sb3IgPSAid2hpdGUiLCBzaXplID0gNykpICsKICBzY2FsZV9maWxsX2dyYWRpZW50KGhpZ2ggPSAiIzI0NzNkYiIsIGxvdyA9ICIjYzNkZWZmIikgKwogIGxhYnModGl0bGUgPSAiUHJvcG9ydGlvbiBvZiBNYW1tYWxzJyBMaXZlcyBTcGVudCBTbGVlcGluZyIsCiAgICAgICB4ID0gIiIsCiAgICAgICB5ID0gIiIsCiAgICAgICBjYXB0aW9uID0gIlBpcHBhIEdhbGxhZ2hlciBhbmQgSm9zZWx5biBBbmdlbGVzIiwKICAgICAgIGZpbGwgPSAiTWF4aW11bSBMaWZlIFNwYW4iKQogIApHNCAKYGBgCgpgYGB7ciwgZWNobz1GQUxTRX0KRzUgPC0Kc2xlZXAgJT4lIAogIHBpdm90X2xvbmdlcihjb2xzID0gU2xvdy53YXZlLnNsZWVwLi5ocnMuZGF5LjpQYXJhZG94aWNhbC5zbGVlcC4uaHJzLmRheS4sIG5hbWVzX3RvID0gIkRyZWFtX1R5cGUiLCB2YWx1ZXNfdG8gPSAiSG91cnMiKSAlPiUgCiAgZ2dwbG90KCkgKwogIGdlb21fY29sKGFlcyh4ID0gSG91cnMsIHkgPSBTcGVjaWVzLm9mLmFuaW1hbCwgZmlsbCA9IERyZWFtX1R5cGUpKSArCiAgbGFicyh0aXRsZSA9ICJQcm9wb3J0aW9uIG9mIERyZWFtaW5nIHZzIE5vbi1EcmVhbWluZyBTbGVlcCIsCiAgICAgICB5ID0gIiIsCiAgICAgICB4ID0gIiIsCiAgICAgICBmaWxsID0gIlNsZWVwIFR5cGUiLAogICAgICAgY2FwdGlvbiA9ICJQaXBwYSBHYWxsYWdoZXIgYW5kIEpvc2VseW4gQW5nZWxlcyIsCiAgICAgICBzdWJ0aXRsZSA9ICIgICAgIikgKwogIHRoZW1lKAogICAgYXhpcy50ZXh0LnkgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDYuNSksCiAgICBwYW5lbC5ncmlkLm1ham9yLnggPSBlbGVtZW50X2JsYW5rKCksCiAgICBwYW5lbC5ncmlkLm1pbm9yLnggPSBlbGVtZW50X2JsYW5rKCksCiAgICBwYW5lbC5ncmlkLm1ham9yLnkgPSBlbGVtZW50X2JsYW5rKCksCiAgICBwYW5lbC5ncmlkLm1pbm9yLnkgPSBlbGVtZW50X2JsYW5rKCksCiAgICBwbG90LnRpdGxlLnBvc2l0aW9uID0gInBsb3QiLAogICAgcGxvdC50aXRsZSA9IGVsZW1lbnRfdGV4dChjb2xvciA9ICIjMGEyMDNiIiksCiAgICBwbG90LmNhcHRpb24ucG9zaXRpb24gPSAicGxvdCIKICApICsKICBzY2FsZV94X2NvbnRpbnVvdXMoZXhwYW5kID0gYygwLDApKSArCiAgc2NhbGVfZmlsbF9tYW51YWwobGFiZWxzID0gYygiRHJlYW1pbmciLCAiTm9uLURyZWFtaW5nIiksIHZhbHVlcyA9IGMoIiMwYTIwM2IiLCIjMjQ3M2RiIikpCgpHNSAgCmBgYAoKCgoKCg==